package aden.SifWar;

abstract class SifWarWayPt
{
	public SifWarWayPt(int inType)
	{
		mType = inType;
	}

	SifWarWayPt mNext;
	
	public static final int Type_MOVE = 0;
	public static final int Type_ATTACK = 1;
	public static final int Type_MOOD = 2;
	public static final int Type_RADIO = 3;
	public static final int Type_WAIT = 4;
	public static final int Type_undefined = 5;
	private int mType;
	
	
	public int GetType() {return mType;}
	public SifWarWayPt GetNext() {return mNext;}
}

class SifWarWayPtMood extends SifWarWayPt
{
	public SifWarWayPtMood(int     inMood)
	{
		super(Type_MOOD);
		
		mMood = inMood;
	}
	int     mMood;
	public int GetMood() {return mMood;}
}

class SifWarWayPtRadio extends SifWarWayPt
{
	public SifWarWayPtRadio(int     inRadio)
	{
		super(Type_RADIO);
		
		mRadio = inRadio;
	}
	int     mRadio;
	public int GetRadio() {return mRadio;}
}

class SifWarWayPtMove extends SifWarWayPt
{
	public SifWarWayPtMove(int inX,
			               int inY)
	{
		super(Type_MOVE);
		
		mX = inX;
		mY = inY;
	}
	int     mX;
	int     mY;
	public int GetX() {return mX;}
	public int GetY() {return mY;}
}

class SifWarWayPtAttack extends SifWarWayPt
{
	public SifWarWayPtAttack(int inX,
			               int inY)
	{
		super(Type_ATTACK);
		
		mX = inX;
		mY = inY;
	}
	int     mX;
	int     mY;
	public int GetX() {return mX;}
	public int GetY() {return mY;}
}


class SifWarWayPtWait extends SifWarWayPt
{
	public SifWarWayPtWait(int inWaitType,
			               int inX,
			               int inY)
	{
		super(Type_WAIT);
		mWaitType = inWaitType;
		mX = inX;
		mY = inY;
	}
	int     mX;
	int     mY;
	int     mWaitType;
	public int GetX() {return mX;}
	public int GetY() {return mY;}
	public int GetWaitType() {return mWaitType;}
}
